﻿@using Orchard.Blogs.Extensions;
@using Orchard.Blogs.Models;
@{
    Style.Require("BlogsArchives");
    Script.Require("BlogsArchives");
    IEnumerable<KeyValuePair<ArchiveData, int>> archives = Model.Archives;
    var dateTimeLocalization = WorkContext.Resolve<Orchard.Core.Shapes.Localization.IDateTimeLocalization>();
    var monthNames = dateTimeLocalization.MonthNames.Text.Split(new [] {','}, StringSplitOptions.RemoveEmptyEntries).Select(x => x.Trim()).ToArray();
}
<div class="archives">
    @if (archives.Count() > 20) {
        <ul class="years">
            @{
                int lastYear = archives.First().Key.Year;
                int firstYear = archives.Last().Key.Year;
            }
            @for (int year = lastYear; year >= firstYear; year--) {
                var yearMonths = archives.Where(m => m.Key.Year == year);
            
                if (year == lastYear) {
                    <li>
                        <h4>@year</h4>
                         @Html.UnorderedList(yearMonths, (t, i) => Html.Link(Html.Raw(string.Format("{0} ({1})", monthNames[t.Key.ToDateTime().Month - 1], t.Value)), Url.BlogArchiveMonth((BlogPart)Model.Blog, t.Key.Year, t.Key.Month)), "archiveMonthList")
                   </li>
                } 
            
                if (year != lastYear) {
                    <li class="previous">
                        <h4>@year <span>(@yearMonths.Sum(ym => ym.Value))</span></h4>
                        @Html.UnorderedList(yearMonths, (t, i) => Html.Link(Html.Raw(string.Format("{0} ({1})", monthNames[t.Key.ToDateTime().Month - 1], t.Value)), Url.BlogArchiveMonth((BlogPart)Model.Blog, t.Key.Year, t.Key.Month)), "archiveMonthList")
                    </li>
                }
            }
        </ul>
    } 
    else if (archives.Count() > 0) {
        @Html.UnorderedList(archives, (t, i) => Html.Link(Html.Raw(string.Format("{0} {2} ({1})", monthNames[t.Key.ToDateTime().Month - 1], t.Value, t.Key.ToDateTime().Year)), Url.BlogArchiveMonth((BlogPart)Model.Blog, t.Key.Year, t.Key.Month)), "archiveMonthList")
    }
    else {
        <div class="message info">@T("None found")</div>
    }
</div>